<html>
<body>

<applet width=100 height=100 code=i18n.class>
</applet>

This is a multi-stage test.  Click on "done" when you have completed
reading these instructions.<br>
<p>
First, policytool will be invoked.  During the entire test,
make sure that all the buttons, menu options, error messages,
and output messages are comprehensible
(you can read all the english text fine).
If at any time an exception is thrown, or if any message
is incomprehensible, then the test failed.  Otherwise,
the test passed.
<p>
<b>Preparation</b>: Find (or create) a temporary directory that you have write
access to (Example: 'C:\tmp' on Windows or '/tmp' on other systems) and copy
the files "ks", "good", "bad" from the scratch sub-directory of this test's
working directory (the -w argument of jtreg) into the temporary directory.
If 'policy1' or 'policy2' already exists in this directory, remove it.
<p>
Press "Pass" if ... press "Fail" otherwise.
<p>
<ol>
<li> Pull down the 'File' and 'KeyStore' menus and check values
<li> Pull down 'File' menu and select 'View Warning Log'.  Confirm FileNotFound.
<li> Pull down 'File' menu and select 'New'.
<li> Pull down 'File' menu and select 'View Warning Log'.  Confirm empty.
<li> Click on 'Add Policy Entry' and check pop-up window
<li> Click on 'Edit Permission' and 'Remove Permission' and check error messages
<li> Click on 'Add Permission' and check pop-up window
<li> Pull down 'Permission' menu and check values
<li> Select 'AWTPermission', pull down 'Target Name' and check values
<li> Select 'FilePermission', pull down 'Target Name' and 'Actions' and check values.
<li> Select 'NetPermission', pull down 'Target Name' and check values
<li> Select 'PropertyPermission', pull down 'Actions' and check values
<li> Select 'ReflectPermission', pull down 'Target Name' and check values
<li> Select 'RuntimePermission', pull down 'Target Name' and check values
<li> Select 'SecurityPermission', pull down 'Target Name' and check values
<li> Select 'SerializablePermission', pull down 'Target Name' and check values
<li> Select 'SocketPermission', pull down 'Actions' and check values
<li> Type "www.example.com" for SocketPermission 'TargetName',
	and "connect" for 'Actions'
<li> Click OK
<li> Check new entry
<li> Click once on new entry
<li> Click on 'Edit Permission' and confirm values
<li> Select AudioPermission.  Confirm 'Target Name' and 'Actions' cleared.
<li> Select "play" from Target menu.
<li> Click OK, confirm changed permission.
<li> Type "hello" for 'CodeBase', click on 'Done', and check error message
<li> Clean up the 'CodeBase' textbox
<li> Type "hello" for 'SignedBy', click on 'Done', and check warning message
<li> Click on 'Edit Policy Entry' and 'Remove Policy Entry'
	and check error messages
<li> Select policy entry, click on 'Edit Policy Entry', check pop-up window and close it
<li> Select policy entry, click on 'Remove Policy Entry',
	and check pop-up window
<li> Do not remove the entry, click 'Cancel'.
<li> Pull down 'File' menu and select 'Exit'.  Confirm Save option.
	Click 'Cancel'.
<li> Select 'File' menu value 'Save' and save into file "policy1" in the
    temporary directory. Check status message.<br>
<li> Select 'File' menu value 'New'
<li> Click 'Add Policy Entry', type in "hello" for 'SignedBy' field,
	click 'Done'.  Confirm warning.
<li> Select 'File' menu value 'Open' and confirm save option
	(Click 'Cancel', do not save changes)
<li> Pull down 'File' menu, select 'View Warning Log'
	and confirm KeyStore alias warning
<li> Pull down 'KeyStore' menu and select 'Edit'
<li> Enter 'foo' as KeyStore URL, click 'OK', and check error
<li> Enter KeyStore URL "file:/tmp/ks" (Or use the temporary directory mentioned
    in the preparation if it's not '/tmp'. For example, "file:/C:/tmp/ks" on Windows)
    but leave other fields empty. Click 'OK'. Should succeed.
<li> Pull down 'KeyStore' menu and select 'Edit'
<li> Confirm URL and Type values. The Type should be "jks"
<li> Enter 'foo' as the provider, click 'OK' and check error message.
<li> Enter 'SUN' as the provider, click 'OK'.  Should succeed.
<li> Pull down 'KeyStore' menu and select 'Edit'
<li> Confirm URL, Type, and Provider values.
<li> Enter 'foo' as the password URL, click 'OK' and check error message.
<li> Enter URL "file:/tmp/bad" (Or use the temporary directory mentioned in
    the preparation if it's not '/tmp'. For example, "file:/C:/tmp/bad" on Windows),
    click 'OK' and check error message.
<li> Enter URL "file:/tmp/good" (Or use the temporary directory mentioned in
    the preparation if it's not '/tmp'. For example, "file:/C:/tmp/good" on Windows)
    and click 'OK'.  Should succeed.
<li> Pull down 'KeyStore' menu and select 'Edit'
<li> Confirm URL, Type, Provider, and Password URL values.
<li> Click OK
<li> Pull down 'File' menu and select 'Save As' and save into file "policy2"
    in the temporary directory. Confirm status message.<br>
<li> Pull down 'File' menu and select 'New'.
<li> Pull down 'File' menu and select 'Open' and open "policy2" in the
    temporary directory.<br>
<li> Click on 'Add Policy Entry', enter Codebase 'http://foo',
	SignedBy 'bar'.  Click on 'Done' and confirm alias warning.
<li> Double-Click on just created policy entry, confirm edit window appears.
<li> Change SignedBy to an 'hello'.
<li> Click on Done and confirm it worked with no warning.
<li> Double-Click on "SignedBy hello" policy entry and
	confirm edit window appears.
<li> Click on Edit/Remove Principal, confirm errors.
<li> Click on 'Add Principal' and check new window.
<li> Click on 'OK' and confirm error message (no principal name)
<li> Enter 'hello' as principal name, click OK and
	confirm status message.
<li> Confirm new principal in Principals list.
<li> Click on 'Done' (creating policy entry).
<li> View warning log and confirm X500Principal/KeyStore alias message.
<li> Confirm principal added to policy entry in main window listing.
<li> Double click on that entry.
<li> Enter codebase "file:/foobar".
<li> Click on 'Add Principal'.  Select KerberosPrincipal.  enter 'foo' as name.
	Click OK.
<li> Confirm new principal in list.
<li> Double-click on new principal.  Select X500Principal.
	Confirm name cleared.  Type 'foo' as name.  Click OK.  Confirm error.
	type 'cn=foo' as name.  Click OK.  should succeed.
<li> Confirm changed principal in list.
<li> Click on 'Add Permission', and add a FilePermission, choose a target and
    an action. Click OK.
<li> Click on 'Done' in Policy Entry window.
<li> Confirm entries in main window listing.
<li> Select 'File' menu value 'Exit'
<li> Save Changes, confirm status message.
<li> Delete all files created during this test. If the temporary directory
 is also newly created, empty and delete it.</ol>
<p>

</body>
</html>
